#pragma once
#include <gfx/dx12/core.h>
#include <utl/math.h>

struct GLFWwindow;

namespace primal
{
	constexpr u32 max_draw_instance{ 1024u };

	struct InstanceTransforms
	{
		DirectX::XMMATRIX trans[max_draw_instance];
	};

	struct render_items
	{
		D3D12_VERTEX_BUFFER_VIEW vert_view;
		D3D12_INDEX_BUFFER_VIEW ind_view;
		InstanceTransforms transforms;
		u32 ins_count;
		D3D12_GPU_VIRTUAL_ADDRESS tex;
	};

	bool render_system_initialize(GLFWwindow* window);
	void render_system_render();
}